#include<stdio.h>
#include<unistd.h>
#include<err.h>
#include<stdlib.h>

void child(){
    
    printf("I`m a child ,my pid is %d\n",getpid());
    fflush(stdout);
    char* args[] = {"echo","hello you mother fuck",NULL};
    char* envp[] = {NULL};
    // exit(0);
    execve("/bin/echo",args,envp);
    err(EXIT_FAILURE,"exec() failed");
}

void parent(__pid_t pid_c){
    printf("I`m a parent ,my pid is %d,And my child`s pid is %d\n",getpid(),pid_c);
    exit(EXIT_SUCCESS);
}

int main(){
    __pid_t ret = fork();
    if(ret == -1)
        err(EXIT_FAILURE,"fork failed");
    if(ret == 0){
        child();
    }
    else{
        parent(ret);
    }
    err(EXIT_FAILURE,"shouldn`t reach here!");
}



// int com(int i ){
//     printf("com begin!\n");
//     exit(EXIT_SUCCESS); 
//     return i*i;
// }

// int main(){

//     printf("result is %d\n",com(12));
//     return 0;
// }

// int main(){
//     // printf("Hello World\n");
//     // sleep(1);
//     // printf("Hello World\n");
//     // sleep(1);
//     // printf("Hello World\n");
//     // sleep(1);
//     // printf("finish\n");
//     return 0;
// }